<?php

/**
 * This file is part of the Framework03 PHP framework.
 * @author Walter Tamboer
 * @package Framework03
 */

/**
 * The abstract base class for all controller requests.
 */
abstract class FW_Controller_Request_Abstract
{
    /**
     * Sets whether or not this controller request has been dispatched.
     * @param boolean $value Whether or not the request has been dispatched.
     */
    abstract public function setDispatched($value);

    /**
     * Gets a value that indicates whether or not this request has been dispatched.
     * @return boolean Returns a boolean that indicates whether or not this request has been dispatched.
     */
    abstract public function isDispatched();

    /**
     * Gets the name of the controller that we're requesting.
     * @return string Returns the name of the requested controller.
     */
    abstract public function getControllerName();

    /**
     * Sets the name of the controller that we're requesting.
     * @param string $name The name of the controller to set.
     * @return FW_Controller_Request_Abstract
     */
    abstract public function setControllerName($name);

    /**
     * Gets the name of the action that we're requesting.
     * @return string Returns the name of the requested action.
     */
    abstract public function getActionName();

    /**
     * Sets the name of the action that we're requesting.
     * @param string $name The name of the action to set.
     * @return FW_Controller_Request_Abstract
     */
    abstract public function setActionName($name);
    
    /**
     * Gets the arguments that we're passed to this request.
     * @return array
     */
    abstract public function getArguments();
}
